<?php
/**
 * Controller_Admin_Notification
 *
 * Класс Controller_Admin_Notification отвечает за обработку уведомлений в админке
 *
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 1.0
 */
class Controller_Admin_Notification extends Controller_Admin {

	/**
	 * Выбор действия по URL
	 *
	 */
	public function action() {
		Service_Debug::setDebug();
		switch ($this->arrRequest[2]) {
			case '':
				$this->getIndex();
			  break;
			case 'edit':
				$notificationAction = Service_Escape::absolutelyEscapeString($this->arrRequest[3]);
				$objNotification = new Notification($notificationAction);
				if ($objNotification->id) $this->actionEdit($objNotification);
				else $this->setError(404);
				break;
			default:
				$this->setError(404);
				break;
		}
	}

	/**
	 * Выводит список оповещений для администрирования
	 * 
	 */
	public function getIndex() {
	  Service_Debug::setDebug();
		$objNotification = new Notification();
	  $arrNotifications = $objNotification->find('all', array('select' => '`action`', 'order' => '`action` ASC', 'limit' => $this->pageLimit, 'offset' => ($this->pageNum - 1) * $this->pageLimit));
    $this->elementsInListAmount = $objNotification->count(); //получаем общее кол-во стран;
	  
	  $this->title = $this->pageHead = 'Администрирование оповещений';
	  $objViewNotification = new View_Notification();
	  $this->showHeader();
	    $objViewNotification->showListForAdmin($arrNotifications);
     	$this->showPages();
		$this->showFooter();
	}
	
  /**
   * Выводит страницу редактирования оповещения
   * 
   * @param Notification $objNotification - объект оповещения для редактирования
   */
  public function actionEdit(Notification $objNotification) {
		Service_Debug::setDebug();
		$editId = $objNotification->id;
		if (isset($_POST['Notification'])) {
			$objNotification = new Notification($_POST['Notification']);
			if ($objNotification->id != $editId) User_Session::moveTo(View_Base::getLanguageUrl(W_ADMIN) . 'notifications/', Service_Translate::getText('Недопустимое действие'));
			if ($objNotification->save()) User_Session::moveTo(W_ADMIN . 'notifications/', 'Оповещение успешно сохранено', 1);
		}
  	
  	$objViewNotification = new View_Notification();
  	$this->pageHead = $this->title = 'Редактирование оповещения "' . $objNotification->getField('action') . '"';
  	$this->addWysiwygMetas();
    
  	$this->showHeader();
      $objViewNotification->showEditForm($objNotification);
    $this->showFooter();
  }
}
?>